====== Simulation VHDL ======

{{tag>VHDL conception_electronique CAO}}

Utile pour ceux qui débutent en vhdl ou bien qui recherchent une solution libre de développer leurs projets, cette documentation va expliquer brièvement les premiers pas à faire sur Ubuntu. 




===== Simulation avec GHDL, GTKWave =====

{{http://gtkwave.sourceforge.net/splash_512.gif?300x250|GTKWave}}
==== Préparation : ====

=== Utilisation des logiciels libres suivant : ===
   * [[http://ghdl.free.fr|GHDL]] : logiciel libre de simulation de code VHDL
   * [[http://gtkwave.sourceforge.net/|GtkWave]] : logiciel libre de visualisation de simulation

=== Installation : ===
Installez les paquets [[:tutoriel:comment_installer_un_paquet|ghdl]],[[:tutoriel:comment_installer_un_paquet|gtkwave]]

**//* Méthode en ligne de commande//**

Dans votre terminal, saisissez :
<code> sudo apt-get install ghdl gtkwave</code>
**//* Méthode apt//**

Cliquez sur les paquets : **[[apt>ghdl,gtkwave]]**


==== Utilisation : ====
Placez vous dans votre répertoire de travail
<code>cd le/chemin/vers/mon/repertoire/Repertoire_de_Travail</code>

=== Analyse du code VHDL ===
Permet de vérifier la syntaxe du code, les erreurs sont affichées dans le terminal.
<code>ghdl -a monFichier.vhd</code>

=== Compilation ===
Cette étape ne peut se faire qu'une fois le code vérifié et corrigé, si ce n'est pas le cas, ghdl vous le fait remarquer.
On crée ici un fichier exécutable.
<code>ghdl -e monFichier</code>
<note>Attention, ici il ne faut pas d'extension à //monFichier//</note>

=== Simulation ===
Un fois l'exécutable créé, on spécifie un temps de simulation pour l'exécuter. //Remplacez XX par la durée de votre simulation.//
Le fichier vcd créé va nous servir à visualiser nos chronogrammes via GTKWave.
<code>./monFichier --stop-time=XXns --vcd=monFichierSimulation.vcd</code>

=== Visualisation ===
On lance le logiciel gtkwave en lui spécifiant notre fichier de simulation.
<code>gtkwave monFichierSimulation.vcd &</code>
<note>L'ajout des signaux au chronogramme se fait par simple double clic</note>

<note important>Pour ceux qui ont l'habitude de travailler directement sur des cibles type FPGA, dans le cas d'une simulation, il vous faudra impérativement simuler vos signaux de type clock</note>